
// #include <json/json.h>
// #include <thread>
#include <iostream>
#include "websocketpp_server.hpp"

// void recv_text_message(server *s, websocketpp::connection_hdl hdl, message_ptr msg)
// {
//     server::connection_ptr con = s->get_con_from_hdl(hdl); // 由句柄得连接
//     std::string client_ip = con->get_remote_endpoint(); // 获取ip
//     int fd = con->get_socket().native_handle(); // 获取套接字(文件描述符)
//     std::cout << "ip: " << client_ip << std::endl;
//     std::cout << "fd: " << fd << std::endl;
//     std::cout << "文本消息内容: " << msg->get_payload() << std::endl;

//     // 给客户端恢复三次消息
//     // int count = 3;
//     // while (count--)
//     // {
//     //     std::cout << "To QML Client: ";
//     //     std::string to_qml_client = "";
//     //     std::cin >> to_qml_client;
//     //     s->send(hdl, to_qml_client, websocketpp::frame::opcode::TEXT);
//     //     s->poll(); // 清空消息队列，使得每一次send后客户端能立即收到消息
//     // }
// }

// void recv_binary_message(server *s, websocketpp::connection_hdl hdl, message_ptr msg)
// {
//     static int sum = 0;
//     sum += msg->get_payload().size();
//     std::cout << "接收到二进制数据：" << sum << " FIN: " << msg->get_fin() << std::endl;
// }

int main()
{
    websocketpp_server server;

    try
    {
        server.set_port(8083);
        server.run();
    }

    // 抛出异常
    catch (websocketpp::exception const &e)
    {
        std::cout << "程序抛出异常: "; 
        std::cout << e.what() << std::endl;
    }
    catch (...)
    {
        std::cout << "other exception" << std::endl;
    }
}
